﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DADOS.usuario
{
    public class metContexto
    {
        DB_PROAD banco = new DB_PROAD();

        private void FecharConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Close();
        }

        private void InicializarConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Open();
        }

        /// <summary>
        /// Retonar TB_CONTEXTO
        /// </summary>
        /// <param name="intCodCat">Código usuario</param>
        /// <returns>obj TB_CONTEXTO</returns>
        public TB_CONTEXTO SelecionarContexto(int intCodUsuario)
        {
            try
            {
                InicializarConexao(banco);
                var objCon = banco.TB_CONTEXTO.Where(q => q.CO_USUARIO == intCodUsuario).FirstOrDefault();
                return objCon;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Incluir Contexto
        /// </summary>
        /// <param name="objAnamnese">TB_CONTEXTO objAnamnese</param>
        public TB_CONTEXTO Incluir(TB_CONTEXTO objContexto)
        {
            try
            {
                InicializarConexao(banco);
                banco.AddToTB_CONTEXTO(objContexto);
                banco.SaveChanges();
                return objContexto;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Alterar Contexto
        /// </summary>
        /// <param name="objAnamnese">TB_CONTEXTO FormAnamnese</param>
        public void Alterar(TB_CONTEXTO FormContexto)
        {
            try
            {
                InicializarConexao(banco);

                var objContexto = banco.TB_CONTEXTO.Where(q => q.CO_CONTEXTO == FormContexto.CO_CONTEXTO).FirstOrDefault();
                
                objContexto.NR_Q_1 = FormContexto.NR_Q_1;
                objContexto.NR_Q_2 = FormContexto.NR_Q_2;
                objContexto.NR_Q_2_OUTROS = FormContexto.NR_Q_2_OUTROS;
                objContexto.NR_Q_3 = FormContexto.NR_Q_3;
                objContexto.NR_Q_4 = FormContexto.NR_Q_4;
                objContexto.NR_Q_SENT_1 = FormContexto.NR_Q_SENT_1;
                objContexto.NR_Q_SENT_2 = FormContexto.NR_Q_SENT_2;
                objContexto.NR_Q_SENT_3 = FormContexto.NR_Q_SENT_3;
                objContexto.NR_Q_SENT_4 = FormContexto.NR_Q_SENT_4;
                objContexto.NR_Q_SENT_5 = FormContexto.NR_Q_SENT_5;
                objContexto.NR_Q_SENT_6 = FormContexto.NR_Q_SENT_6;
                objContexto.NR_Q_SENT_7 = FormContexto.NR_Q_SENT_7;
                objContexto.NR_Q_SENT_8 = FormContexto.NR_Q_SENT_8;
                objContexto.NR_Q_SENT_9 = FormContexto.NR_Q_SENT_9;
                objContexto.NR_Q_SOZINHO = FormContexto.NR_Q_SOZINHO;
                objContexto.NR_Q_AMB_1_1 = FormContexto.NR_Q_AMB_1_1;
                objContexto.NR_Q_AMB_1_2 = FormContexto.NR_Q_AMB_1_2;
                objContexto.NR_Q_AMB_1_3 = FormContexto.NR_Q_AMB_1_3;
                objContexto.NR_Q_AMB_1_4 = FormContexto.NR_Q_AMB_1_4;
                objContexto.NR_Q_AMB_1_5 = FormContexto.NR_Q_AMB_1_5;
                objContexto.NR_Q_AMB_1_6 = FormContexto.NR_Q_AMB_1_6;
                objContexto.NR_Q_AMB_1_7 = FormContexto.NR_Q_AMB_1_7;
                objContexto.NR_Q_AMB_1_8 = FormContexto.NR_Q_AMB_1_8;
                objContexto.NR_Q_AMB_2_1 = FormContexto.NR_Q_AMB_2_1;
                objContexto.NR_Q_AMB_2_2 = FormContexto.NR_Q_AMB_2_2;
                objContexto.NR_Q_AMB_2_3 = FormContexto.NR_Q_AMB_2_3;
                objContexto.NR_Q_AMB_2_4 = FormContexto.NR_Q_AMB_2_4;
                objContexto.NR_Q_AMB_2_5 = FormContexto.NR_Q_AMB_2_5;
                objContexto.NR_Q_AMB_2_6 = FormContexto.NR_Q_AMB_2_6;
                objContexto.NR_Q_AMB_2_7 = FormContexto.NR_Q_AMB_2_7;
                objContexto.CO_USUARIO = FormContexto.CO_USUARIO;
                objContexto.CO_PROFISSIONAL = FormContexto.CO_PROFISSIONAL;
                objContexto.DT_ATUALIZACAO = DateTime.Now;

                banco.SaveChanges();
                GravarLog(FormContexto.CO_CONTEXTO, FormContexto.CO_PROFISSIONAL);
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Gravar Log de Alteração
        /// </summary>
        /// <param name="intCodAnamnese">Código Contexto</param>
        /// <param name="intCodProfissional">Código Profissional</param>
        protected void GravarLog(int intCodContexto, int intCodProfissional)
        {
            try
            {
                var bd = new DB_PROAD();
                var objLog = new TB_CONTEXTO_LOG();
                objLog.CO_CONTEXTO = intCodContexto;
                objLog.CO_PROFISSIONAL = intCodProfissional;
                objLog.DT_ALTERACAO = DateTime.Now;
                bd.AddToTB_CONTEXTO_LOG(objLog);
                bd.SaveChanges();
                bd.Connection.Close();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {

            }
        }
    }
}
